package common.model.coupon;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;

@Data
public class Coupon {
    /**
     * 优惠券id
     */
    private Long id;
    /**
     * 优惠券唯一编码
     */
    private String couponCode;
    /**
     * 优惠券名称
     */
    private String name;
    /**
     * 类型（1-满减 2-无门槛秒杀）
     */
    private Integer type;
    /**
     * 面值（如满减金额、无门槛金额）
     */
    private BigDecimal value;
    /**
     * 最低消费金额（满减券专用）
     */
    private BigDecimal minAmount;
    /**
     * 是否平台通用券（否则为商铺券）
     */
    private Boolean platformWide;
    /**
     * 适用商铺ID（platform_wide=false时必填）
     */
    private Long shopId;
    /**
     * 秒杀券发放数量
     */
    private Integer totalCount;
    /**
     * 剩余数量
     */
    private Integer remainingCount;
    /**
     * 每人限领数量
     */
    private Integer perUserLimit;
    /**
     * 生效时间
     */
    private LocalDateTime startTime;
    /**
     * 失效时间
     */
    private LocalDateTime endTime;
    /**
     * 领取后有效天数（优先级高于start_time/end_time）
     */
    private Integer validityDays;
    /**
     * 是否可与其他优惠叠加
     */
    private Boolean stackable;
    /**
     * 秒杀开始时间(可能不同于优惠券有效期)
     */
    private LocalDateTime seckillStart;
    /**
     * 秒杀结束时间
     */
    private LocalDateTime seckillEnd;
    /**
     * 秒杀期间每人限购数量
     */
    private Integer seckillLimit;
    /**
     * 状态（0-未发布 1-已发布 2-已过期 3-已停用）
     */
    private Integer status;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
